﻿/*
 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.
 */

#ifndef BURNCTRLWORKER_H
#define BURNCTRLWORKER_H

#include <QObject>
#include <minwindef.h>
#include "BurnToolCommon/MyThread.h"

namespace BurnCtrlWorkerClass {
class BurnCtrlWorker : public QObject {
    Q_OBJECT
public:
    explicit BurnCtrlWorker(QObject *parent = nullptr);

    void SetWiteThreadMsgId(long int witeThreadMsgIdBcw);
public slots:
    void SlotSendMsg(long int msgId, WPARAM wParam, LPARAM lParam);
signals:
    void SignalCommunication(WPARAM wParam, LPARAM lParam);
    void SignalKillAllTimer();
    void SignalResetUIAndFSM();
    void SignalInitBurnCmd();
    void SignalStartConnect();
    void SignalResetBurnState();
    void SignalSetResult(WPARAM wParam);
    void SignalShowResult();
    void SignalSetResultFromAToB(WPARAM wParam, LPARAM lParam);
    void SignalExitApp(WPARAM wParam, LPARAM lParam);
    void SignalCloseJlink();
    void SignalExport(WPARAM wParam, LPARAM lParam);
    void SignalCommonAction1();
    void SignalCommonAction2();
    void SignalCommonAction3();
    void SignalEraseAll();
    void SignalMcuReopen();
    void SignalStartBurn();
    void SignalErase(WPARAM data, LPARAM len);
    void SignalGetParameter();
    void SignalSetParameter();
private:
    long int witeThreadMsgId;
};
}

#endif // BURNCTRLWORKER_H
